package com.ztesoft.web.baseconfig.db.dao.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;

import com.ztesoft.web.baseconfig.db.arg.SubTableDefineArg;
import com.ztesoft.web.baseconfig.db.po.SubTableDefinePO;
import com.ztesoft.web.baseconfig.db.po.TableNamePO;

public interface ISubTableDefineMapper {

	List<Integer> countByArg(SubTableDefineArg arg);

	List<SubTableDefinePO> selectByArg(SubTableDefineArg arg);

	List<SubTableDefinePO> selectBySourceDataId(SubTableDefinePO po);

	SubTableDefinePO selectByPrimaryKey(Integer id);

	List<TableNamePO> selectByTableName(SubTableDefinePO po);

	List<TableNamePO> selectBySourceDataIdForSubAndTgt(SubTableDefinePO po);

	List<TableNamePO> selectBySourceDataIdForSrc(SubTableDefinePO po);

	List<SubTableDefinePO> selectByArgAndPage(SubTableDefineArg arg, RowBounds rowBound);

	int insert(SubTableDefinePO record);

	int insertSelective(SubTableDefinePO record);

	int insertBatch(@Param("list") List<SubTableDefinePO> records);

	int updateByArgSelective(@Param("record") SubTableDefinePO record, @Param("arg") SubTableDefineArg arg);

	int updateDToA(Integer id);
	int updateTo00X(Integer id);

	int updateByArg(@Param("record") SubTableDefinePO record, @Param("arg") SubTableDefineArg arg);

	int updateByPrimaryKeySelective(SubTableDefinePO record);

	int updateByPrimaryKey(SubTableDefinePO record);

	int deleteByArg(SubTableDefineArg arg);

	int deleteByPrimaryKey(Integer id);

}